package com.jzlw.cloud.platform.apple.util;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * wangyuanhua
 */
public class FieldDataRule {
    /**
     * 验证电话号码
     * @param mobiles 需要验证的字符串
     * @return 是否为电话号码
     */
    public boolean isMobileNO(String mobiles){
    Pattern p = Pattern.compile("^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9]))\\d{8}$");
    Matcher matcher = p.matcher(mobiles);
        if (!matcher.matches()) {
            return false;
        }
        return true;
    }

    /**
     * 验证是否为数字组成的字符串
     * @param str 需要验证的字符串
     * @return 是否为数字组成的字符串
     */
    public boolean isNumeric(String str) {
        Pattern pattern = Pattern.compile("^[0-9]*");
        Matcher isNum = pattern.matcher(str);
        if (!isNum.matches()) {
            return false;
        }
        return true;
    }

    /**
     * 验证是否为中文组成的字符串
     * @param s1 需要验证的字符串
     * @return 是否为中文组成的字符串
     */
    public boolean isChinese(String s1){
        return s1.matches("[\\u4E00-\\u9FA5]+");
    }

    /**
     * 验证是否为6位数字组成的字符串
     * @param str 需要验证的字符串
     * @return 是否为6位数字组成的字符串
     */
    public boolean isSixNum(String str){
        Pattern pattern = Pattern.compile("^\\d{6}$");
        Matcher isSixNum = pattern.matcher(str);
        if (!isSixNum.matches()) {
            return false;
        }
        return true;
    }

    /**
     * 验证字符串是否是数字和字符,中文组成
     * @param str 需要验证的字符串
     * @return 是否是数字和字符组成的字符串
     */
    public boolean isCharNumChinese(String str){
        Pattern pattern = Pattern.compile("^[(a-zA-Z0-9\\-\\u4e00-\\u9fa5)]+$");
        Matcher isTrue = pattern.matcher(str);
        if (!isTrue.matches()) {
            return false;
        }
        return true;
    }
    /**
     * 验证字符串是否是数字和字符组成
     * @param str 需要验证的字符串
     * @return 是否是数字和字符组成的字符串
     */
    public boolean isCharNum(String str){
        Pattern pattern = Pattern.compile("^[(a-zA-Z0-9)]+$");
        Matcher isTrue = pattern.matcher(str);
        if (!isTrue.matches()) {
            return false;
        }
        return true;
    }
    /**
     * 验证字符串是否是数字并且小数点后六位
     * @param str 需要验证的字符串
     * @return 是否是数字并且小数点后六位组成的字符串
     */
    public boolean isSixSiteSimData(String str){
        Pattern pattern = Pattern.compile("^(([1-9]{1}\\d*)|([0]{1}))(\\.(\\d){0,6})?$");
        Matcher isSixSimNum = pattern.matcher(str);
        if (!isSixSimNum.matches()) {
            return false;
        }
        return true;
    }
    /*public static void main(String[] args){
        String
    }*/
    /**
     * 验证字符串是否是数字并且只能是0,1,2
     * @param str 需要验证的字符串
     * @return 是否是数字并且只能是0,1,2
     */
    public boolean isThreeNum(String str){
        Pattern pattern = Pattern.compile("^[0-2]");
        Matcher isSixSimNum = pattern.matcher(str);
        if (!isSixSimNum.matches()) {
            return false;
        }
        return true;
    }

    /**
     * 验证字符串是否是经过base64_encode加密
     * @param str 需要验证的字符串
     * @return 是否是经过base64_encode加密
     */
    public boolean isBase64(String str){
        return org.apache.commons.codec.binary.Base64.isBase64(str);
    }
    /**
     * 验证字符串是否是合格的电话号码
     * @param str 需要验证的字符串
     * @return 是否是合格的电话号码
     */
    public boolean isPhone(String str){
        Pattern pattern = Pattern.compile("^[0-9\\-]+$");
        Matcher isPhone = pattern.matcher(str);
        if (!isPhone.matches()) {
            return false;
        }
        return true;
    }

}
